/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package cl.ejemplo.model;

import cl.ejemplo.beans.Auxiliar;
import cl.ejemplo.beans.Funcionario;
import cl.ejemplo.beans.Prestamo;
import cl.ejemplo.beans.Ropa;
import cl.ejemplo.beans.UnidadC;
import cl.ejemplo.helpers.Validador;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Camila
 */
public class UnidadC_mod extends Conexion {

    /**
     *
     */
    public UnidadC_mod() {
        super();
    }

    /**
     *
     * @return
     */
    public ArrayList<UnidadC> obtenerDatos() { //OK Metodo que sirve para ver unidades clinicas
        ArrayList<UnidadC> uni = new ArrayList<>();
        try {
            ResultSet rs;

            rs = ObtenerConsulta("select * from unidadc");
            while (rs.next()) {
                uni.add(new UnidadC(rs.getInt("id_unidadc"), rs.getString("nombre"), rs.getInt("cant_asig")));
            }

            return uni;
        } catch (SQLException ex) {
            Logger.getLogger(UnidadC_mod.class.getName()).log(Level.SEVERE, null, ex);
        }

        return uni;
    }

    /**
     *
     * @param rop
     * @return
     */
    public Ropa escogerRopa(Ropa rop) { //OK
        ArrayList<Ropa> r = new ArrayList<>();
        Ropa dato = new Ropa();
        try {
            ResultSet rs;

            rs = ObtenerConsulta("select * from Ropa");
            while (rs.next()) {
                r.add(new Ropa(rs.getInt("id_ropa"), rs.getString("nombre"), rs.getString("color"), rs.getInt("cant_ropa"), rs.getString("talla")));
            }
            for (Ropa fila : r) {
                if (fila.getNombre().equalsIgnoreCase(rop.getNombre())) {
                    dato = fila;
                }
            }
            System.out.println(dato.getNombre());
            System.out.println(dato.getNumRopa());
            System.out.println(dato.getCant_ropa());
        } catch (SQLException ex) {
            Logger.getLogger(UnidadC_mod.class.getName()).log(Level.SEVERE, null, ex);
        }
        return dato;
    }


    /**
     *
     * @param codUnidadC
     * @return
     */
    public UnidadC escogerUnidadC(String codUnidadC) { //OK
        ArrayList<UnidadC> uni = new ArrayList<>();
        UnidadC dato = new UnidadC();
        uni = obtenerDatos();

        for (UnidadC fila : uni) {
            if (fila.getNombre().equalsIgnoreCase(codUnidadC)) {
                dato = fila;
            }
        }

        return dato;
    }

    /**
     *
     * @return
     */
    public ArrayList<Ropa> verRopa() { //OK
        ArrayList<Ropa> ropa = new ArrayList<>();

        try {
            StringBuilder sb = new StringBuilder();
            sb.append("select * from ropa where estado_ropa='limpio' and disponibilidad=1 and cant_ropa>1");
            ResultSet rs = ObtenerConsulta(sb.toString());
            while (rs.next()) {

                ropa.add(new Ropa(rs.getInt("id_ropa"), rs.getString("nombre"), rs.getString("color"), rs.getInt("cant_ropa"), rs.getString("talla")));

            }
        } catch (SQLException ex) {
            Logger.getLogger(UnidadC_mod.class.getName()).log(Level.SEVERE, null, ex);
        }
        return ropa;
    }
    //ojooooo

    /**
     *
     * @param unidad
     * @return
     */
    public ArrayList<Auxiliar> traerAuxiliares(UnidadC unidad) { //OK
        ArrayList<Auxiliar> uni = new ArrayList<>();
        try {

            StringBuilder sb = new StringBuilder();
            sb.append("select * from  funcionario f , unidadc u  where f.id_unidadc = u.id_unidadc and nombre=");

            sb.append("'");
            sb.append(unidad.getNombre());
            sb.append("'");

            ResultSet rs = ObtenerConsulta(sb.toString());
            while (rs.next()) {
                Auxiliar aux;
                Funcionario fnc;
                StringBuilder direccion = new StringBuilder();
                direccion.append(rs.getString("calle").toUpperCase());
                direccion.append(" ");
                direccion.append(rs.getString("numero"));
                direccion.append(",");
                direccion.append(rs.getString("comuna"));

                fnc = new Funcionario(rs.getString("nombrec"),
                        rs.getString("id_rut"),
                        rs.getString("apellidop"),
                        rs.getString("apellidom"),
                        rs.getString("email"),
                        rs.getString("comuna"),
                        rs.getString("calle"),
                        rs.getString("numero"),
                        rs.getString("sexo"),
                        rs.getString("fechanac"),
                        rs.getInt("telefono"),
                        rs.getString("rol"),
                        rs.getString("turnoinicio"),
                        rs.getString("turnofin"),
                        rs.getString("contrato"),
                        rs.getInt("id_unidadc"),
                        rs.getInt("id_cuenta"));

                aux = new Auxiliar(fnc);
                aux.setTurnoFin(rs.getDate("turnofin").toLocaleString());
                aux.setTurnoInicio(rs.getDate("turnoinicio").toLocaleString());

                uni.add(aux);
            }


        } catch (SQLException ex) {
            Logger.getLogger(UnidadC_mod.class.getName()).log(Level.SEVERE, null, ex);
        }

        return uni;
    }

    public Auxiliar escogerAuxiliar(Auxiliar aux) { //OK
        ArrayList<Auxiliar> auxi = new ArrayList<>();
        Auxiliar dato = new Auxiliar();
        StringBuilder sb = new StringBuilder();
        Funcionario fnc = new Funcionario();
        try {
            ResultSet rs;

            sb.append("select * from funcionario where id_funcionario=");
            sb.append(aux.getNumFuncionario());
            
            rs = ObtenerConsulta(sb.toString());

            while (rs.next()) {
                fnc.setNumFuncionario(rs.getInt("id_funcionario"));
                fnc.setNombre(rs.getString("nombrec"));
                fnc.setApellidp("apellidop");
                fnc.setApellidom("apellidom");


                dato = new Auxiliar(fnc);
            }
        } catch (SQLException ex) {
            Logger.getLogger(UnidadC_mod.class.getName()).log(Level.SEVERE, null, ex);
        }
        return dato;
    }

    public Prestamo ingresarRopaL(Prestamo prest) {
        Validador v = new Validador();

        StringBuilder sb = new StringBuilder();
        String fecha_prest = v.asignarFecha();
        sb.append("insert into prestamo (id_funcionario,id_ropa,id_unidadc,cant_prest,fecha_prest,deuda,exceso_ropa,observacion) values (");
        
        sb.append(1);
        sb.append(",");
       
        int ropa = 1;
        sb.append(ropa);
        sb.append(",");
      
        sb.append(1);
        sb.append(",");
     
        sb.append(prest.getCant_prest());
        sb.append(",'");
      
        sb.append(fecha_prest);
        sb.append("',");
  
        sb.append("0");
        sb.append(",");

        sb.append(prest.getExceso());
        sb.append(",'");

        sb.append(prest.getObservacion());
        sb.append("'");
        sb.append(")");
        
        System.out.println(sb.toString());
        ejecutaSql(sb.toString());

        return prest;
    }

    public Prestamo ingresarRopaS(Prestamo prest) {
   Validador v = new Validador();

        StringBuilder sb = new StringBuilder();
        Prestamo eprest = new Prestamo();
        String fecha_prest = v.asignarFecha();
        sb.append("update  prestamo set fecha_dev='");
        sb.append(fecha_prest);
        sb.append("'");
 
        sb.append(",");
        sb.append("deuda= ");
        sb.append(prest.getDeuda());
        sb.append(",");
        sb.append("exceso_ropa=");
        sb.append(prest.getExceso());
        sb.append(",");
        sb.append("observacion='");
        sb.append(prest.getObservacion());
        sb.append("' where id_prestamo=");
        sb.append(prest.getNumPrest());
        
        ejecutaSql(sb.toString());

        return eprest;
    }

//    public Prestamo verPrestamo(Prestamo prest) {
//         Prestamo prestamo = new Prestamo();
//
//        try {
//            StringBuilder sb = new StringBuilder();
//            sb.append("select * from ropa where estado_ropa='limpio' and disponibilidad=1 and cant_ropa>1");
//            ResultSet rs = ObtenerConsulta(sb.toString());
//            while (rs.next()) {
//
//                ropa.add(new Ropa(rs.getInt("id_ropa"), rs.getString("nombre"), rs.getString("color"), rs.getInt("cant_ropa"), rs.getString("talla")));
//
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(UnidadC_mod.class.getName()).log(Level.SEVERE, null, ex);
//        }
//       
//        return prest;
//    }

    public Prestamo escogerPrestamo(Prestamo prest) { //OK

        UnidadC uc = new UnidadC();
        Funcionario fnc = new Funcionario();
        Ropa ropa = new Ropa();
        try {

            StringBuilder sb = new StringBuilder();

            sb.append("select * from prestamo where id_prestamo=");
            sb.append(prest.getNumPrest());
            ResultSet rs = ObtenerConsulta(sb.toString());

            while (rs.next()) {
                uc.setId(rs.getInt("id_funcionario"));
                fnc.setNumFuncionario(rs.getInt("id_funcionario"));
                ropa.setNumRopa(rs.getInt("id_ropa"));
                Prestamo pres = new Prestamo(uc, fnc, ropa, rs.getInt("cant_prest"), rs.getDate("fecha_prest").toLocaleString(), "", rs.getInt("exceso_ropa"), rs.getInt("deuda"), rs.getString("observacion"));
                System.out.println(pres.getFnc().getNumFuncionario());
                System.out.println(pres.getUnidad().getId());
                System.out.println(pres.getRop().getNumRopa());
            }
        } catch (SQLException ex) {
            Logger.getLogger(UnidadC_mod.class.getName()).log(Level.SEVERE, null, ex);
        }

        return prest;
    }
}
